const promise1 = new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve('success')
    }, 1000)
  })
  const promise2 = promise1.then(() => {
    // throw new Error('error!!!')
    console.log('2')
  })
  
  console.log('promise1', promise1)
  console.log('promise2', promise2)
  
  setTimeout(() => {
    console.log('promise1', promise1)
    console.log('promise2', promise2)
  }, 2000)



// promise1 Promise { <pending> }
// promise2 Promise { <pending> }
// 2
// promise1 Promise { 'success' }
// promise2 Promise { undefined }


// promise 有 3 种状态：pending、fulfilled 或 rejected。
// 状态改变只能是 pending->fulfilled 或者 pending->rejected，状态一旦改变则不能再变。
// 上面 promise2 并不是 promise1，而是返回的一个新的 Promise 实例。
